<?php
//一.数组
//1.PHP 数值数组
//自动分配 ID 键（ID 键总是从 0 开始）：
$searchList = ["百度", "谷歌", "360搜索", "搜搜"];

//人工分配 ID 键：
$searchList[0]="百度";
$searchList[1]="谷歌";
$searchList[2]="360搜索";
$searchList[3]="搜搜";

//实例创建一个名为 $cars 的数值数组，并给数组分配三个元素,然后打印一段包含数组值的文本：
$searchList1 = ["百度", "谷歌", "360搜索", "搜搜"];
echo "国内常用的搜索引擎： "
    . $searchList1[0] . "、"
    . $searchList1[1] . "、"
    . $searchList1[2] . "、"
    . $searchList1[2] . "。";

//2.php关联数组
//方法：
$searchUrlList = [
    "baidu" => "https://www.baidu.com",
    "google" => "https://www.google.com",
    "360" => "https://www.so.com",
    "soso" => "https://www.soso.com",
];

$searchUrlList['baidu']="https://www.baidu.com";
$searchUrlList['google']="https://www.google.com";
$searchUrlList['360']="https://www.so.com";
$searchUrlList['soso']="https://www.soso.com";

//示例：
echo "<br />";
$searchUrlList2 = [
    "baidu" => "https://www.baidu.com",
    "google" => "https://www.google.com",
    "360" => "https://www.so.com",
    "soso" => "https://www.soso.com",
];
echo "soso的网址是：" . $searchUrlList2['soso'];

//遍历并打印关联数组中的所有值，您可以使用 foreach 循环，如下所示：
echo "<br />";
$searchUrlList3 = [
    "baidu" => "https://www.baidu.com",
    "google" => "https://www.google.com",
    "360" => "https://www.so.com",
    "soso" => "https://www.soso.com",
];
foreach ($searchUrlList3 as $key => $value) {
    echo $key . "的网址是：" . $value;
    echo "<br />";
}

//3.php二维数组
//方法
$searchList = [
    ["name" => "百度", "url" => "https://www.baidu.com"],
    ["name" => "谷歌", "url" => "https://www.google.com"],
    ["name" => "360搜索", "url" => "https://www.so.com"],
    ["name" => "搜搜", "url" => "https://www.soso.com"],
];

$searchList = array(
    array("name" => "百度", "url" => "https://www.baidu.com"),
    array("name" => "谷歌", "url" => "https://www.google.com"),
    array("name" => "360搜索", "url" => "https://www.so.com"),
    array("name" => "搜搜", "url" => "https://www.soso.com"),
);

//示例，我们创建了一个自己分配 ID 键的二维数组：
echo "<br />";
$searchList4 = [
    "baidu" => ["name" => "百度", "url" => "https://www.baidu.com"],
    "google" => ["name" => "谷歌", "url" => "https://www.google.com"],
    "360" => ["name" => "360搜索", "url" => "https://www.so.com"],
    "soso" => ["name" => "搜搜", "url" => "https://www.soso.com"],
];
echo "<pre>";
var_dump($searchList4["baidu"]); // 输出？
echo "</pre>";

//示例，让我们试着显示上面数组中的某个值：
echo "<br />";
    //一维baidu 二维name,url  表达式[""][""]
echo $searchList4["baidu"]["name"] . "的网址是: ".$searchList4["baidu"]["url"];

//4.count()统计元素个数
//返回数组中元素的数目：
echo "<br />";
$searchList5 = ["百度", "谷歌", "360搜索", "搜搜"];
echo count($searchList5);

//示例，计算二维数组的数目：
echo "<br />";
$searchList6 = [
    "baidu" => ["name" => "百度", "url" => "https://www.baidu.com"],
    "google" => ["name" => "谷歌", "url" => "https://www.google.com"],
    "360" => ["name" => "360搜索", "url" => "https://www.so.com"],
    "soso" => ["name" => "搜搜", "url" => "https://www.soso.com"],
];
echo count($searchList6); // 输出？一维四个
echo "<br />";
echo count($searchList6["baidu"]); // 输出？一维中一个的两个二维

//5.array_search()查询数组中元素
//在数组中搜索键值 "red"，并返回它的键名：
echo "<br />";
$a=array("a"=>"red","b"=>"green","c"=>"blue");
echo array_search("red", $a);

//示例，在数组中搜索baidu：
echo "<br />";
$searchUrlList7 = [
    "baidu" => "https://www.baidu.com",
    "google" => "https://www.google.com",
    "360" => "https://www.so.com",
    "soso" => "https://www.soso.com",
];
echo array_search("baidu", $searchUrlList7); // 输出？
var_dump(array_search("google", $searchUrlList7));

//6.array_pop()弹出元素
//弹出数组中的最后一个元素：
echo "<br />";
$a=array("red","green","blue");
array_pop($a);
print_r($a);

//7.array_push()添加元素
//向数组尾部插入 "blue" 和 "yellow"：
echo "<br />";
$a=array("red","green");
array_push($a,"blue","yellow");
print_r($a);

//示例，带有字符串键名的数组：
echo "<br />";
$a=array("a"=>"red","b"=>"green");
array_push($a,"blue","yellow");
print_r($a);

//8.array_unique()删除重复元素
//移除数组中重复的值：
echo "<br />";
$a=array("a"=>"red","b"=>"green","c"=>"red");
print_r(array_unique($a));
//array_unique() 函数用于移除数组中重复的值。如果两个或更多个数组值相同，只保留第一个值，其他的值被移除。
//注释：被保留的数组将保持第一个数组项的键名类型。
//过滤 筛选

//二.时间
//1.修改时区
//在 PHP 中设置时区的方法有三种，这边只介绍代码里修改的方式：
echo "<br />";
echo date("Y-m-d H:i:s"); // 输出？
date_default_timezone_set("PRC");
echo date("Y-m-d H:i:s"); // 输出？

//2.时间戳time()
//time() 函数返回自 Unix 纪元（January 1 1970 00:00:00 GMT）起的当前时间的秒数。
//返回当前时间的 Unix 时间戳，并格式化为日期：
echo "<br />"."2.时间戳time()";
$t=time();
echo($t . "<br>");
echo(date("Y-m-d",$t));

//3.时间格式化函数date()
//date() 函数可把时间戳格式化为可读性更好的日期和时间。
//可以在字母之间插入其他字符，比如 "/"、"." 或者 "-"，这样就可以增加附加格式了：
echo "<br />"."3.时间格式化函数date()";
echo date("Y/m/d") . "<br>"; // 输出？
echo date("Y.m.d") . "<br>"; // 输出？
echo date("Y-m-d"); // 输出？

//4.字符串转时间戳函数strtotime()
//strtotime() 函数将任何字符串的日期时间描述解析为 Unix 时间戳（自 January 1 1970 00:00:00 GMT 起的秒数）。
//time 必需。规定日期/时间字符串。
//now 可选。规定用来计算返回值的时间戳。如果省略该参数，则使用当前时间。
//将任何字符串的日期时间描述解析为 Unix 时间戳：
echo "<br />"."4.字符串转时间戳函数strtotime()";
    // 设置时区
date_default_timezone_set("PRC");
$time = strtotime("2021-09-01 00:00:00");  // 将指定日期转成时间戳
    // 打印当前时间  PHP_EOL 换行符，兼容不同系统
echo  $time, PHP_EOL;
    // 更多实例
echo strtotime("now"), PHP_EOL;
echo strtotime("now"), PHP_EOL;
echo strtotime("10 September 2000"), PHP_EOL;
echo strtotime("+1 day"), PHP_EOL;
echo strtotime("+1 week"), PHP_EOL;
echo strtotime("+1 week 2 days 4 hours 2 seconds"), PHP_EOL;
echo strtotime("next Thursday"), PHP_EOL;
echo strtotime("last Monday"), PHP_EOL;

//5.获取日期信息getdate()
//getdate() 函数返回某个时间戳或者当前本地的日期/时间的日期/时间信息。
//返回当前本地的日期/时间的日期/时间信息：
echo "<br />"."5.获取日期信息getdate()";
echo "<pre>";
print_r(getdate());
echo "</pre>";

//6.获取微秒microtime()
//microtime() 函数返回当前 Unix 时间戳的微秒数。
//返回当前 Unix 时间戳的微秒数：
echo "<br />"."6.获取微秒microtime()";
echo(microtime());

//示例，获取微秒的函数经常用来计算时间的执行时间：
echo "<br />";
echo microtime(true);
echo "<br />";
$i = 1;
while ($i < 10000) {
    $i++;
}
echo microtime(true);
echo "<br />";
echo "<br />";
echo "<br />";
echo "<br />";
echo "<br />";
echo "<br />";
echo "<br />";
echo "<br />";











